#!/bin/bash

# 构建脚本
echo "开始构建项目..."

# 获取环境变量，默认为 production
ENV=${NODE_ENV:-production}
echo "构建环境: $ENV"

# 清理之前的构建输出
if [ -d "dist" ]; then
    echo "清理之前的构建输出..."
    rm -rf dist
fi

# 清理 TypeScript 构建缓存
if [ -f "tsconfig.tsbuildinfo" ]; then
    echo "清理 TypeScript 构建缓存..."
    rm -f tsconfig.tsbuildinfo
fi

# 构建项目
echo "构建项目..."
npm run build

# 检查构建结果
if [ -d "dist" ]; then
    echo "✅ 构建成功！输出目录: dist/"
    
    # 创建 config 目录
    echo "创建 dist/config 目录..."
    mkdir -p dist/config
    
    # 根据环境复制对应的配置文件
    # 处理环境名称映射
    case $ENV in
        "production")
            CONFIG_FILE="config/env.prod.json"
            ;;
        "staging")
            CONFIG_FILE="config/env.staging.json"
            ;;
        "test")
            CONFIG_FILE="config/env.test.json"
            ;;
        "local")
            CONFIG_FILE="config/env.local.json"
            ;;
        *)
            CONFIG_FILE="config/env.${ENV}.json"
            ;;
    esac
    
    if [ -f "$CONFIG_FILE" ]; then
        echo "复制环境配置文件: $CONFIG_FILE -> dist/config/env.json"
        cp "$CONFIG_FILE" "dist/config/env.json"
        echo "✅ 环境配置文件复制成功"
    else
        echo "⚠️  警告: 环境配置文件 $CONFIG_FILE 不存在"
        # 尝试复制默认的生产环境配置
        if [ -f "config/env.prod.json" ]; then
            echo "使用默认生产环境配置..."
            cp "config/env.prod.json" "dist/config/env.json"
        fi
    fi
    
    # 复制所有环境配置文件（可选）
    echo "复制所有环境配置文件到 dist/config/..."
    cp config/*.json dist/config/ 2>/dev/null || echo "没有找到配置文件"
    
    echo "构建文件数量: $(find dist -name "*.js" | wc -l)"
    echo "构建目录结构:"
    find dist -type d | sort
    echo ""
    echo "配置文件列表:"
    ls -la dist/config/ 2>/dev/null || echo "没有配置文件"
else
    echo "❌ 构建失败！"
    exit 1
fi
